/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Teste;

import beans.Endereco;
import beans.Fornecedor;
import beans.Funcionario;
import beans.Pedido;
import beans.PessoaFisica;
import beans.Produto;
import beans.Telefone;
import connection.ConnectionBD;
import facade.FacadeAlmox;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

public class Teste {

    public static byte[] extractBytes() throws IOException {
//       ByteArrayOutputStream baos = new ByteArrayOutputStream();;
//ImageIO.write(img, "jpg", baos);
//baos.flush();
//byte[] bytes = baos.toByteArray();
//baos.close();
//        String ImageName;
//       // ImageName = "\\images\\Desert.jpg"; ///Images/Desert.jpg";
//        ImageName ="C:\\Users\\Ronaldo\\Documents\\NetBeansProjects\\ProjetoBD\\src\\images\\Desert.jpg";
//
//        
//         File imgPath = new File(ImageName);
// BufferedImage bufferedImage = ImageIO.read(imgPath);
// WritableRaster raster = bufferedImage .getRaster();
// DataBufferByte data ;
// data= (DataBufferByte) raster.getDataBuffer();
// 
//        System.out.println("Array = "+data.getData());
//        

        //Ler a imagem do caminho especificado
			BufferedImage imagem = ImageIO.read(new File("C:\\Users\\Ronaldo\\Documents\\NetBeansProjects\\ProjetoBD\\src\\images\\Desert.jpg"));
			
			ByteArrayOutputStream bytesImg = new ByteArrayOutputStream();
			ImageIO.write((BufferedImage)imagem, "jpg", bytesImg);//seta a imagem para bytesImg
			bytesImg.flush();//limpa a variável
			byte[] byteArray = bytesImg.toByteArray();//Converte ByteArrayOutputStream para byte[] 
			bytesImg.close();//fecha a conversão
			
//			reg.setId(7);
//			reg.setNome("Leomara");
//			reg.setFoto(byteArray);
//			regDao.salvar(reg);	
        System.out.println("Array ==>> "+ byteArray.length);
        
        byte[] foto = byteArray;
		
//		//LENDO E COPIANDO IMAGEM ##############################################
		BufferedImage img = null; 
//		reg = regDao.findById(7);
//								
//		try {
			img = ImageIO.read(new ByteArrayInputStream(foto));
//			lblFoto.setIcon(new ImageIcon(img));	
			ImageIO.write(img, "PNG", new File("C:\\\\Users\\\\Ronaldo\\\\Documents\\\\NetBeansProjects\\\\ProjetoBD\\\\src\\\\images\\\\h.png"));
//		
//		} catch (IOException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
        
        
                        return (byteArray);
    }
    
//    public void exibirFoto(){
//		RegistroDao regDao = new RegistroDao();
//		Registro reg = new Registro();		
//		byte[] foto = null;
//		
//		//LENDO E COPIANDO IMAGEM ##############################################
//		BufferedImage img = null; 
//		reg = regDao.findById(7);
//								
//		try {
//			img = ImageIO.read(new ByteArrayInputStream(reg.getFoto()));
//			lblFoto.setIcon(new ImageIcon(img));	
//			ImageIO.write(img, "PNG", new File("C:/Downloads/h.png"));
//		
//		} catch (IOException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//}


    public static void main(String[] args) throws IOException {
        
        extractBytes();
        //CRUD PessoaFisica
        PessoaFisica pf = new PessoaFisica();
        pf.setId(34);
        pf.setEmail("teste@gmail.com");
        pf.setNome("Ronaldo");
        pf.setCPF("12345678901");
        pf.setSexo("M");
        pf.setRg("45678");
         //  System.out.println( FacadeAlmox.getInstancia().totalPessoaFisica());
        
        //CRUP PessoaFisica
        //  System.out.println( FacadeAlmox.getInstancia().totalPessoaJuridica());

        
        /**/
        
        //CRUD Produto
        Produto produto = new Produto();
        produto.setId(20);
        produto.setNome("Deserto");
        produto.setMarca("Natureza");
        produto.setPeso(1000);
        produto.setPreco(4);
        //++++++++++++++++++++++++++++++++++++++++++++++++++
        BufferedImage imagem = ImageIO.read(new File("C:\\Users\\Ronaldo\\Documents\\NetBeansProjects\\ProjetoBD\\src\\images\\Desert.jpg"));
        ByteArrayOutputStream bytesImg = new ByteArrayOutputStream();
        ImageIO.write((BufferedImage)imagem, "jpg", bytesImg);//seta a imagem para bytesImg
        bytesImg.flush();//limpa a variável
        byte[] byteArray = bytesImg.toByteArray();//Converte ByteArrayOutputStream para byte[] 
        bytesImg.close();//fecha a conversão
        //++++++++++++++++++++++++++++++++++++++++++++++++++
        produto.setFoto(byteArray);
        produto.setUnidade("Kg");
        produto.setDatavalidade("10/10/2015");
     FacadeAlmox.getInstancia().inserirProduto(produto);;;
//        FacadeAlmox.getInstancia().consultarProdutoID(produto.getId());
        
        /* */
       //CRUD Funcionario
        Funcionario f = new Funcionario();
            List<Telefone> fone = new ArrayList<Telefone>() ;
            Telefone tel = new Telefone();
             //Telefone tel1 = new Telefone();
            tel.setDdd("83");
            tel.setNumero("00009999");
            fone.add(tel);
//            System.out.println("Inseriu um tel no hashset");
//            tel1.setDdd("81");
//            tel1.setNumero("69696969");
//            fone.add(tel1);
//            System.out.println("Inseriu o segundo tel no hashset");
            
            Endereco endereco = new Endereco();
            endereco.setBairro("Bancarios");
            endereco.setCep("58051594");
            endereco.setCidade("Joao Pessoa");
            endereco.setEstado("PB");
            endereco.setRua("Rua Rafael de F.");
            /*
             * Set fone = new HashSet<String>();
                fone.add(new String("90932"));
                fone.add(new String("898932"));

             */
//            String[] emails = {"email@1", ""};
            //-> Sem multiplos emails
            /*
             *  login; xx
             * email; xxx
             * dataNascimento; xxx
             * nome; xxx
             * telefone; xxx
             * Set telSet; ---
             * senha; xxx
             */
            f.setLogin("Login4");
            f.setEmail("emails");
            f.setDataNascimento("06/06/1986");
            f.setNome("Nome do kba");
            f.setEndereco(endereco);
            f.setTelefone(fone);
            f.setSenha("123");
            f.setSexo("M");
            
        //CRUD Fornecedor
            Fornecedor fornecedor = new Fornecedor();
            fornecedor.setEmail("tarugo@gmail.com");
            fornecedor.setNome("Tarugo");
            fornecedor.setId(66);
        //CRUD Pedido
        Pedido pedido = new Pedido();
        pedido.setId(6);
        pedido.setQuantidade(7);
        pedido.setDataPedido("10/10/2015");
        pedido.setDataRecebimento("12/10/2015");
        pedido.setPrazoDeEntrega("15/10/2015");
        pedido.setPreco((float) 10.4);//ref_funcionario,ref_fornecedor,ref_produto
//        FacadeAlmox.getInstancia().inserirPedido(pedido, f.getLogin(), fornecedor.getId(), produto.getId());
        Funcionario funci = new Funcionario();
        funci.setLogin("dlvc");
       Funcionario ff;
       ff = FacadeAlmox.getInstancia().consultarFuncionarioLogin(funci.getLogin());
        System.out.println(">>"+ ff.getNome());

        System.out.println(">>"+ ff.getEmail());
        System.out.println(">>"+ ff.getSenha());
        System.out.println(">>"+ ff.getSexo());
        Endereco end = new Endereco();
        
        System.out.println("BAIRRO>>"+ ff.getEndereco().getBairro());
        System.out.println("CEP>>"+ ff.getEndereco().getCep());
        System.out.println("CIDADE>>"+ ff.getEndereco().getCidade());
        System.out.println("RUA>>"+ ff.getEndereco().getRua());
//        System.out.println(">>"+ ff.getEndereco().);
        Telefone telo = new Telefone();
                    ArrayList telefonep = new ArrayList();
telefonep = (ArrayList) ff.getTelefone();
 for (int i = 0; i < telefonep.size(); i++) {
//                    System.out.println("Tel "+ i+ " = "+ t);
                    telo = (Telefone) telefonep.get(i);
                    System.out.println("Tel DDD "+ telo.getDdd());
                    System.out.println("Tel Num "+ telo.getNumero());

                }
       // System.out.println("TEL>>"+ ff.getTelefone().lastIndexOf(f));
        System.out.println("DATA NASC>>"+ ff.getDataNascimento());
FacadeAlmox.getInstancia().alterarFuncionario(funci);
//          PessoaFisica pe = FacadeAlmox.getInstancia().consultarPessoaFisicaID(pf.getId());
//            System.out.println("Pessoa Nome "+ pe.getNome());
//            System.out.println("Pessoa ID "+ pe.getId());
//            
//            System.out.println("Pessoa Email "+ pe.getEmail());
        //============ P IMPRIMIR 
//          Collection t = FacadeAlmox.getInstancia().consultarPessoaFisica(pf.getNome());//consultarTodosClientes();
//        
//		Iterator i = t.iterator();
//
//		while(i.hasNext()){
//    		PessoaFisica c = (PessoaFisica) i.next();
//    		System.out.println(c.getNome().toString() + " " + c.getNome());
        //System.out.println(c.getId().toString() + " " + c.getNome());

//		}
        //=========== ATE AQUI 

        //FacadeAlmox.getInstancia().alterarPessoaFisica(pf);
//         FacadeAlmox.getInstancia().inserirPessoaFisica(pf);
        //FacadeAlmox.getInstancia().excluirPessoaFisica(pf);
//        System.out.println("Inseriu Fornecedor");


//            
//            try {
//                Statement stmt = ConnectionBD.getInstance().createStatement();
//                String linhaSQL = new String();
//                                System.out.println("Conectou !!");
//
//                linhaSQL = "SELECT DISTINCT p.total_pedidos()  FROM pedido_tb p";
////                 System.out.println(linhaSQL);
//                ResultSet rs = stmt.executeQuery(linhaSQL);
////                 System.out.println("Ate aqui");
//                while(rs.next()){
//                    System.out.println( rs.getObject(1).toString());
//                }
////                System.err.println("Conectou !!");
//            } catch (SQLException ex) {
//                Logger.getLogger(Teste.class.getName()).log(Level.SEVERE, null, ex);
//            }
//            Funcionario f = new Funcionario();
//            List<Telefone> fone = new ArrayList<Telefone>() ;
//            Telefone tel = new Telefone();
//             Telefone tel1 = new Telefone();
//            tel.setDdd("83");
//            tel.setNumero("00009999");
//            fone.add(tel);
////            System.out.println("Inseriu um tel no hashset");
////            tel1.setDdd("81");
////            tel1.setNumero("69696969");
////            fone.add(tel1);
////            System.out.println("Inseriu o segundo tel no hashset");
//            
//            Endereco endereco = new Endereco();
//            endereco.setBairro("Bancarios");
//            endereco.setCep("58051594");
//            endereco.setCidade("Joao Pessoa");
//            endereco.setEstado("PB");
//            endereco.setRua("Rua Rafael de F.");
//            /*
//             * Set fone = new HashSet<String>();
//                fone.add(new String("90932"));
//                fone.add(new String("898932"));
//
//             */
////            String[] emails = {"email@1", ""};
//            //-> Sem multiplos emails
//            /*
//             *  login; xx
//             * email; xxx
//             * dataNascimento; xxx
//             * nome; xxx
//             * telefone; xxx
//             * Set telSet; ---
//             * senha; xxx
//             */
//            f.setLogin("Login4");
//            f.setEmail("emails");
//            f.setDataNascimento("06/06/1986");
//            f.setNome("Nome do kba");
//            f.setEndereco(endereco);
//            f.setTelefone(fone);
//            f.setSenha("123");
//            f.setSexo("M");
//         //   FacadeAlmox.getInstancia().consultarTodosPedidos();
//         //   FacadeAlmox.getInstancia().inserirFuncionario(f);
//            System.out.println("Inserido com sucesso");
////            Funcionario func = FacadeAlmox.getInstancia().consultarFuncionarioLogin("Login3");
////            System.out.println("Login "+ func.getLogin()+ " Nome " + func.getNome());
//         // Integer num =  FacadeAlmox.getInstancia().totalFuncionarioCadastrados();
//           // System.out.println("Numero = "+ num); 
//          //FacadeAlmox.getInstancia().excluirFuncionario(f);
//            System.out.println("Exclusao Login4");
//           Collection fun = FacadeAlmox.getInstancia().consultarFuncionarioNome("Nome do kba");
//            /*
//        Fachada.getInstancia().inserirCliente(c);
//        System.out.println("Inserido com Sucesso");
//        
//     
//        
//        Collection t = Fachada.getInstancia().consultarTodosClientes();
//        */
//		Iterator i = fun.iterator();
//
//		while(i.hasNext()){
//    		Funcionario c = (Funcionario) i.next();
//    		System.out.println(c.getLogin().toString() + " " + c.getNome());
//            //System.out.println(c.getId().toString() + " " + c.getNome());
//
//		}
//        /**/
//
//        //Cliente c = Fachada.getInstancia().consultarClienteID(6);
//        //System.out.println(c.getId().toString() + " " + c.getNome());





    }
}
